class ListNode:
    def __init__(self,val=0,next=None):
        self.val=val
        self.next=next
# l1=None
# l2=ListNode()
l1=ListNode(1,None)
l1.next=ListNode(2,None)
l1.next.next=ListNode(4,None)
l2=ListNode(1,None)
l2.next=ListNode(3,None)
l2.next.next=ListNode(4,None)
print("l1:................")
p=l1
while p!=None:
    print(p.val)
    p=p.next
print("l2:............")
p=l2
while p!=None:
    print(p.val)
    p=p.next
def mergeTwoLists(l1,l2):
    p1=l1
    p2=l2
    #创建的新节点:创建一个头指针
    head=ListNode(0,p1)
    p=head
    while p1!=None and p2!=None:
        print("成功进入循环....")
        #两个链表都没有指向空时
        if p1.val<=p2.val:
            print("此次循环操作的节点是p1节点")

            p=p.next
            # print("操作后的p点的值：",p.val)
            p1=p1.next
            # print("操作后p1点的值：",p1.val)
        else:
            #需要插入p2对应的节点
            print("此次操作的节点是p2")
            p.next=p2
            p2=p2.next
            p.next.next=p1
            p=p.next
            # print("操作后p2点的值：",p2.val)
    if p2!=None:
        p.next=p2
    return head.next
l3=mergeTwoLists(l1,l2)
print("----------最终结果------------------------")
p=l3
while p!=None:
    print(p.val)
    p=p.next
